package main

import (
	"fmt"
	"time"
)

func main() {
	defer func() {
		if err := recover(); err != nil {
			fmt.Println("捕获到了:", err)
		}
	}()

	// 该协程的panic无法被main线程捕获到，会导致main线程挂掉，所以协程必须得自己捕获自己的panic
	go func() {
		//defer func() {
		//	if err := recover(); err != nil {
		//		fmt.Println("捕获到了:", err)
		//	}
		//}()
		panic("错误XXX")
	}()

	for {
		fmt.Println("运行中")
		time.Sleep(time.Second)
	}
}
